import Vue from "vue";
import Vuex from "vuex";
import axios from "axios";

Vue.use(Vuex)

// 集中管理多个组件共享的数据
export default new Vuex.Store({
    // 集中定义共享数据的地方
    state: {
        name: '未登录游客',
    },
    getters: {

    },
    // 修改共享数据只能通过mutations 实现 必须是同步操作
    mutations: {
        // 定义修改name方法
        setName(state, name) {
            state.name = name;
        }
    },
    // 通过actions 可以调用到mutations 在actions中可以进行异步操作
    actions: {
        setNameByAxios(context) {
            axios({
                url: 'api/admin/employee/login',
                method: 'post',
                data: {
                    username: 'admin',
                    password: '123456',
                }
            }).then(res => {
                if (res.data.code == 200) {
                    // 异步请求后需要修改共享数据
                    context.commit('setName', res.data.data.name)
                }
            }).catch(error => {

            })
        }

    },
    modules: {

    }
})